import axios from 'axios'
import JSONbig from 'json-bigint'
import { ElMessage } from 'element-plus'
// import { umsThirdUserlogin } from '@/api/index'
// 创建实例时配置默认值
const instance = axios.create({
  // 原始
  // baseURL: 'http://159.75.104.145:18889',
  // 最新
  baseURL: 'http://47.96.159.1:18889',
  // 王总线下
  // baseURL: 'http://192.168.1.4:8889',
  // 跨域
  // baseURL: '/proxy-api',
  headers: {
    // 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
    'Content-Type': 'application/json'
  },
  transformResponse: [function (data) {
    try {
      // 作用1:把json字符串转为js对象/! 作用2:把里面的大数字做安全处理-
      return JSONbig.parse(data)
    } catch (err) {
      return data
    }
  }]
})
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // // 在发送请求之前做些什么
  const token = localStorage.getItem('system_token')
  if (token) {
    config.headers.Authorization = 'Bearer ' + token
  }
  return config
}, function (error) {
  return Promise.reject(error)
})
// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  const code = response.data.code || 200
  const msg = response.data.message
  console.log(response.data)
  // const isAuthenticated = localStorage.getItem('system_token')
  //  else if (code === 401) {
  //   ElMessage.error('如果已登录，请联系技术解决')
  //   umsThirdUserlogin({
  //     consoleToken: isAuthenticated
  //     // consoleToken: 'b5066053c18f2c92c6507c6667906df11717750828355773e67c6ef1f7631eeac34daf75bc'
  //   }).then(res => {
  //     console.log('tokenres')
  //     console.log(res)
  //     localStorage.setItem('system_token_cloudWare', res.data.data.token)
  //     ElMessage.success('已经重新登录')
  //   })
  //   return Promise.reject(new Error(msg))
  // }
  if (code === 500) {
    ElMessage.error(msg)
    return Promise.reject(new Error(msg))
  } else if (code === 404) {
    ElMessage.error(msg)
    return Promise.reject(new Error(msg))
  } else if (code === 501) {
    ElMessage.error(msg)
    return Promise.reject(new Error(msg))
  } else if (code === 509) {
    ElMessage.error('没有相同类型的库区，请修改后在进行操作')
    return Promise.reject(new Error(msg))
  }
  return response
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  return Promise.reject(error)
})
export default instance
